package com.jinboe.document.util;

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

import com.jinboe.comm.test.FuLei;
import com.jinboe.comm.util.BeanUtil;
import com.jinboe.document.entity.DataItem;
import com.jinboe.document.entity.DateEntity;

public class DocumentIOHelper1 extends DocumentIOHelper{
	public static void main(String[] args) {  
		DataItem dataItem=new DataItem();
		dataItem.setItemName("myName");
		dataItem.setType("java.long.String");
		dataItem.setLength(36);
		dataItem.setNot(true);
		dataItem.setDefaultValue("DefaultValue");
		dataItem.setViewName("ViewName");
		List<DataItem>dataItemList=new ArrayList();
		dataItemList.add(dataItem);
		DateEntity dateEntity=new DateEntity();
		dateEntity.setCreaterCode("AB023259");
		dateEntity.setCreateTime(new Date());
		dateEntity.setDataItemList(dataItemList);
		dateEntity.setName("dateEntityName");
		dateEntity.setComment("myComment");		
		dateEntity.setId("id");
		dateEntity.setOpAuthType("opAuthType");
		DocumentIOHelper1 domxml=new DocumentIOHelper1();
        domxml.createDateEntityXml(dateEntity);  
        BeanUtil.readClassAttr(dateEntity);
        FuLei.testReflect(dateEntity);
	}
	private void isValue(){
		
	}
	public void createDateEntityXml(DateEntity dateEntity) {   
        //创建document对象  
        Document document=DocumentHelper.createDocument();  
        //为document对象添加一级节点  
        Element students=document.addElement("students");  
        //在一级节点下添加二级节点  
        Element student=students.addElement("student");  
        Element name=student.addElement("name");  
        name.setText("刘德华");  
        name.setAttributeValue("code", "shuai");
        Element sex=student.addElement("sex");
        sex.setText("男");  
        try {  
            /*直接通过write方法输出，如下，此时输出的xml文件中为默认的UTF-8编码，没有格式，空格也没有去除，实际上就是一个字符串；*/  
            Writer fileWriter=new FileWriter(basePase+dateEntity.getName()+".xml");  
            //XMLWriter xmlWriter=new XMLWriter(fileWriter);      
               
            /* 用XMLWriter类中的write方法，此时可以自行设置输出格式，比如紧凑型、缩减型：此时输出的xml文件中为gb2312编码，缩减型格式，但是多余的空格已经被清除：*/  
             OutputFormat format = OutputFormat.createPrettyPrint();//缩减型格式  
             //OutputFormat format = OutputFormat.createCompactFormat();//紧凑型格式  
             format.setEncoding("UTF-8");//设置编码  
             //format.setTrimText(false);//设置text中是否要删除其中多余的空格  
             XMLWriter xmlWriter=new XMLWriter(fileWriter,format);  
               
             /*如果想要对xml文件的输出格式进行设置，就必须用XMLWriter类，但是我们又需要保留其中的空格，此时我们就需要对format进行设置，也就是加上一句format.setTrimText(false); 
				这样就可以既保持xml文件的输出格式，也可以保留其中的空格;element中attribute中的值如果有空格的话在任何情况下是都不会去除空格的；*/  
             xmlWriter.write(document);  
             xmlWriter.close();   
        } catch (IOException e) {  
            e.printStackTrace();  
        }
    }
}
